The present invention relates to electronic communication and more particularly to electronic communication over an infrared link, and even more particularly to a system and method for establishing a dial-up connection between a remote computing device and a network over an infrared communication link between a modem with infrared communications interface (Ir modem) and the remote computing device.
The rapid proliferation of digital computing equipment coupled with users"" desires to transmit data between computing devices has resulted in the rapid expansion of digital communication networks. The most visible example of this phenomenon is the internet. The growth in wireless communication, particularly in mobile phones, has made it desirable to enable mobile phones to exchange data with computing devices like personal computers. One solution to this problem has been to provide mobile phones with an Ir modem to enable the mobile phone to establish an infrared data link with a computing or communication device like a personal computer. Using an Ir modem, a mobile phone can provide wireless data transfer between a remote computing device like a personal computer and host computing device like a server connected to a conventional wireline network.
Infrared communication links are known in the art. An infrared data link transmits information using pulses of infrared light as the carrier signal. The Infrared Data Association (IrDA), an industry association, promulgated a proposed standard for establishing infrared communication links between electronic communication devices, generally referred to as the IrDA protocol. The IrDA protocol provides a multi-layered protocol stack governing communication between electronic devices over an infrared data link. The IrDA protocol stack is depicted in FIG. 1.
Physical layer 10 includes the hardware constituting the optical transceiver and specifies optical characteristics of the infrared signal. Physical layer 10 also manages the interface between components of the system implemented in hardware and the upper layer protocol layers, typically implemented in software. To do this, physical layer 10 also manages encoding of data, and framing for various communication speeds.
Ir Link Access Protocol (IrLAP) 20 corresponds to data link layer (layer 2) of the Open Systems Interconnection (OSI) protocol. IrLAP 20 is responsible for initiating and maintaining an infrared connection between two devices. Two devices connected by an IrLAP connection exist in a master-slave, or primary-secondary relationship. The primary device is responsible for all aspects of managing the connection. The primary device sends command frames to initiate a connection, to transmit data, and to terminate a connection. The secondary device sends response frames. The primary device is also responsible for controlling data flow and resolving data link errors. Once a connection is established, the IRLAP service implements retransmission, error correction and low-level flow control procedures to provide a reliable data transfer service between two connected devices.
The Ir Link Management Protocol (IrLMP) 30 service utilizes the reliable connection provided by the IRLAP layer 20 and adds multiplexing services to allow multiple IrLMP clients to transmit data across a single IrLAP link. To implement multiplexing, IrLMP 30 implements a higher level addressing scheme in which the Logical Service Access Point (LSAP) defines the point of access to a service or application. The LSAP is identified by a one byte number referred to as a LSAP Selector (LSAP-SEL). Using this higher level addressing scheme, multiple IrLMP services or applications may be multiplexed over a single IrLAP connection.
The Tiny Transport Protocol (TinyTP) 40 is a transport layer service that provides flow control for each IrLMP connection and also performs segmentation and reassembly (SAR). Flow control is provided using a credit-based flow control scheme in which the devices transmit credit packets indicating how many IrLMP packets they can receive.
The IrDA protocol provides three optional services: Ir Object Exchange (IrOBEX) 60, Ir Local Area Network (IrLAN) 50 and Ir Serial and Parallel Port Emulation (IrCOMM) 70. IrOBEX 60 is an application layer protocol that provides a simple, compact data exchange service. IrLAN 50 is an application layer protocol that emulates a LAN connection. Finally, IrCOMM 70 is an application layer protocol that emulates communication over a parallel or serial communication port.
An Ir modem requires two additional layers residing logically above the IrCOMM layer 70 to communicate with a remote computing device (e.g., a personal computer (PC) or personal digital assistant (PDA)): the AT Parser layer 90 and the Data Transfer layer 95. The AT Parser 90 accepts commands from applications running on the remote computing device. The commands are executed and a final response is sent back, optionally preceded by one or more intermediate responses. It will be noted that in normal operation, an application running on the remote computing device generates a single AT command and waits for a response. The AT Parser 90 may also generate unsolicited responses that are sent to the application at any time during execution of commands, but more likely during the execution of two AT commands, or when the application is idle. Unsolicited commands may be used by the modem to get the attention of the application when an incoming call has been detected.
AT commands are a generic method of commanding a modem and receiving responses. Standardized AT commands are detailed in International Telecommunications Union Standard ITU-T V.25 ter. In addition to standardized commands, each manufacturer can establish proprietary commands. The application must therefore know the type of modem with which it is communicating so it can issue the correct commands to configure the modem. By way of example, the Microsoft(copyright) Windows(copyright) operating system has hundreds of modem descriptions, each with their own set of commands that are needed to make sure the modem operates properly.
The Data Transfer layer 95 is active when a call is connected and performs the transport of the data to and from the remote modem. When the Data Transfer layer 95 is active, the AT parser 90 is inactive. The transition from the AT parser 90 mode to the Data Transfer layer 95 mode (e.g., data mode) is made after either the ATD or ATA commands have completed execution and the call is connected. Transition from data mode back to AT parser mode is required before the modem can be commanded to disconnect the call. For this, one of several industry standards can be implemented by the modem manufacturers. The transition can be initiated either by in-band signalling or out-of-band signalling using the V.24 pin DTR. In-band signalling is called the xe2x80x9cescape sequencexe2x80x9d and consists of a pattern of characters.
The escape sequence usually consists of three plus characters in sequence (xe2x80x9c+++xe2x80x9d), sometimes with a required delay either before or after the sequence, or both. The escape character is configurable using an AT command. Some escape sequences must be followed by a valid AT command before it is accepted by the modem. When the transition is made, the modem sends the final result code xe2x80x9cOKxe2x80x9d to the application.
The IrCOMM entity is, in some implementations, exposed to the applications as a COMM-port, so the application does not require special support for IrDA to operate with, for example, an IR modem. This is called a xe2x80x9cVirtual COMM-portxe2x80x9d. When the application connects to this virtual COMM-port, most known IR stack implementations lock the entire IR stack. This means that other applications and protocols like OBEX over IR cannot be operative while IrCOMM is used.
Finally, the IrDA Information Access Service (IAS) 80 acts as the xe2x80x9cyellow pagesxe2x80x9d for a device. The IAS uses a client-server model in which client objects make requests about the services available on a particular device, and the server accesses an information base of objects supplied by local services or applications to respond to the request. An IAS object is represented by a data structure having a Class Name and up to 256 Named Attributes.
Presently, IrDA-compatible infrared communication links between an Ir modem and computing devices are established using the IrCOMM application layer service. IrCOMM includes a control channel that can be used to separate control signaling from data transfer. However, because IrCOMM was designed to emulate a serial or parallel communication port, it is poorly adapted for establishing connections between mobile phones and computing devices. For example, IrCOMM lacks a feature for initializing an Ir modem to start a communication session. In the absence of an initialization feature, this function must be addressed by higher level application software. Accordingly, there is a need in the art for a compact, yet robust system and method for establishing an infrared connection between an Ir modem and a remote communication device.
The present invention addresses these and other concerns by providing an alternate service for providing a connection between a computing device and an IR modem over an infrared communication link. The service is referred to herein as the IrNetDial protocol, or service. The IrNetDial service may be added to the IrDA protocol stack in conjunction with IrLAN, OBEX, and IrCOMM and is exposed to the application through the IAS. IrNetDial defines the initial state of the modem, thereby removing the need for initialization, and provides a strictly limited set of supported AT commands and responses. Further, IrNetDial provides a defined method for switching from data mode to AT parser mode. These features simplify the application that sets up the data connection, improve reliability, and remove the need for a description of the specific modem listing the AT commands valid for the modem in use. IrNetDial encourages ad-hoc networking since the modem configuration does not have to be installed from a removable media; instead, the Ir Modem with IrNetDial can be used at once.
The present invention addresses these and other needs by providing, in one aspect, a method of initiating, in a remote computing device, a request to establish a dial-up connection with a network over an infrared communication link between the remote communication device and an Ir modem. The method comprises the steps of querying the LMP_IAS to obtain the LSAP-SEL for the infrared communication link, establishing a logical connection to an IrDA TinyTP LSAP returned by the LMP_IAS query, and executing an ATD command to initiate a dial-up connection between the remote computing device and the network over the infrared link between the remote computing device and the Ir modem.
In another embodiment, the invention provides a method of receiving, in a remote computing device, a request to establish a dial-up connection with a network over an Ir communication link between the remote computing device and an Ir modem. The invention comprises the steps of querying an IrDA LMP_IAS to obtain the LSAP-SEL for the infrared connection, establishing a logical connection to an IrDA TinyTP LSAP returned by the LMP_IAS query, and executing an ATA command to answer the request for a dial-up connection between the remote computing device and the network over the infrared link between the remote computing device and the Ir modem.
In further embodiments of the invention, an initiation string is transmitted to the Ir modem.
In further embodiments of the invention, data is transmitting between the remote computing device and the Ir modem.
In further embodiments of the invention, the communication session is terminated by transmitting an ATH command to the Ir modem.
In another aspect, the invention provides a system for establishing a dial-up connection between a remote computing device and network over an infrared communication link between the remote computing device and an infrared modem. The system comprises means for querying a LMP_IAS to obtain a LSAP-SEL for the infrared connection, means for establishing a logical connection to an IrDA TinyTP LSAP returned by the LMP_IAS query, and means for executing an ATA command to initiate a dial-up connection between the remote computing device and the network over the infrared link between the remote computing device and the Ir modem.